package org.jsola.hr.web;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.jsola.core.Page;
import org.jsola.core.Result;
import org.jsola.hr.dto.TransferAccountsBankBatchAddDTO;
import org.jsola.hr.dto.TransferAccountsBankBatchUpdateDTO;
import org.jsola.hr.query.TransferAccountsBankBatchQuery;
import org.jsola.hr.vo.TransferAccountsBankBatchListVO;
import org.jsola.hr.vo.TransferAccountsBankBatchVO;

import java.util.List;

/**
 * 转账批次(平安银行)
 *
 * @author zhr
 */
@Api(tags = "hr-转账批次(平安银行)")
public interface ITransferAccountsBankBatchControllerAPI {

    /**
     * 新增转账批次(平安银行)
     * @param transferAccountsBankBatchAddDTO 转账批次(平安银行)新增实体
     * @return 转账批次(平安银行)展示对象
     */
    @ApiOperation(value = "新增转账批次(平安银行)")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "transferAccountsBankBatchAddDTO", dataType = "TransferAccountsBankBatchAddDTO", value = "新增转账批次(平安银行)", paramType = "body")
    })
    Result<TransferAccountsBankBatchVO> save(TransferAccountsBankBatchAddDTO transferAccountsBankBatchAddDTO);


    /**
     * 修改转账批次(平安银行)
     * @param transferAccountsBankBatchUpdateDTO 转账批次(平安银行)
     * @return 更新数量
     */
    @ApiOperation(value = "修改转账批次(平安银行)")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "transferAccountsBankBatchUpdateDTO", dataType = "TransferAccountsBankBatchUpdateDTO", value = "修改转账批次(平安银行)", paramType = "body")
    })
    Result<Integer> update(TransferAccountsBankBatchUpdateDTO transferAccountsBankBatchUpdateDTO);




    /**
     * 删除单个转账批次(平安银行)，彻底删除
     * @param transferAccountsBankBatchId 转账批次(平安银行)id
     * @return 删除数量
     */
    @ApiOperation(value="删除单个转账批次(平安银行)，彻底删除")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "transferAccountsBankBatchId", dataType = "String", value = "转账批次(平安银行)id", paramType = "path")
    })
    Result<Integer> delete(String transferAccountsBankBatchId);


    /**
     * 批量删除转账批次(平安银行)，彻底删除
     * @param transferAccountsBankBatchIds 转账批次(平安银行)id集合
     * @return 删除数量
     */
    @ApiOperation(value = "批量删除转账批次(平安银行)，彻底删除")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "transferAccountsBankBatchIds", dataType = "String[]", value = "转账批次(平安银行)id数组", paramType = "body" ,allowMultiple = true)
    })
    Result<Integer> deleteBatch(String[] transferAccountsBankBatchIds);


    /**
     * 根据转账批次(平安银行)id查询转账批次(平安银行)详情
     * @param transferAccountsBankBatchId 转账批次(平安银行)id
     * @return 转账批次(平安银行)详情
     */
    @ApiOperation(value="根据转账批次(平安银行)id查询转账批次(平安银行)详情")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "transferAccountsBankBatchId", dataType = "String", value = "转账批次(平安银行)id", paramType = "path")
    })
    Result<TransferAccountsBankBatchVO> findById(String transferAccountsBankBatchId);


    /**
     * 查询转账批次(平安银行)
     * @param transferAccountsBankBatchQuery 转账批次(平安银行)查询参数
     * @return page
     */
    @ApiOperation(value="查询转账批次(平安银行)")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "transferAccountsBankBatchQuery", dataType = "TransferAccountsBankBatchQuery", value = "转账批次(平安银行)查询参数", paramType = "query")
    })
    Result<List<TransferAccountsBankBatchListVO>> listAll(TransferAccountsBankBatchQuery transferAccountsBankBatchQuery);


     /**
     * 分页查询转账批次(平安银行)
     * @param transferAccountsBankBatchQuery 转账批次(平安银行)查询参数
     * @return page
     */
    @ApiOperation(value="分页查询转账批次(平安银行)")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "transferAccountsBankBatchQuery", dataType = "TransferAccountsBankBatchQuery", value = "转账批次(平安银行)查询参数", paramType = "query")
    })
    Result<Page<TransferAccountsBankBatchListVO>> page(TransferAccountsBankBatchQuery transferAccountsBankBatchQuery);


}

